#include <iostream>
#include <string>

using namespace std;
/*
1、子类如何访问父类的私有成员

    子类中会继承父类中所有成员 ，包括私有成员，只不过在子类中不能直接访问父类私有成员

    需要父类提供公有的函数来访问父类的私有成员

2、当父类 和 子类 函数名冲突时 咋办
    当父子类中出现了同名的函数时，访问来也不会冲突

​	即使形参不同，也不构成重载关系 原因是两个函数不在同一个空间内

​	如果想访问父类的成员 需要加 类名 :: 来修饰
*/
class person
{
private:
    string name;    // 姓名
    string sex;     // 性别
    int age;        // 年龄

public:
    void set_name(string name)
    {
        this->name = name;
        cout << name << endl;
    }
};

class student:public person
{
private:    
public:
    //1、子类如何访问父类的私有成员
    void set_data(string name , string sex , int age )
    {
        person::set_name(name);
    }
    //2、当父类 和 子类 函数名冲突时 咋办
    void set_name(string name)
    {
        person::set_name(name);
    }

    ~student()
    {
        person();
    }
};


int main(int argc, char const *argv[])
{
    student s1;
    s1.set_name("张三");

    student s2;
    s2.set_data("王五","男",11);
    
    person p1;
    p1.set_name("李四");
    return 0;
}
